//配置axios的全局基本路径
axios.defaults.baseURL='http://localhost:8080'
//全局属性配置，在任意组件内可以使用this.$http获取axios对象
Vue.prototype.$http = axios

//配置拦截器

//axios前置拦截器,让所有请求都带token
axios.interceptors.request.use(config=>{
    //1.获取token值
    console.log("前置")
    let token = localStorage.getItem("token");//token为uuid
    //判断token是否为空
    if (token){
        //设置请求参数
        config.headers["token"] = token;
    }
    console.log(token)
    return config;//返回设置的参数
},error=>{
    console.log("前置错误")
    promise.reject(error);
})

//3 使用axios后置拦截器，处理后端响应的noLogin错误码
axios.interceptors.response.use(result=>{
    let data = result.data;//
    if(!data.success && data.message==="noLogin"){
        //清空历史数据，并跳到登录   定位到登录页
        location.href="login.html";
    }
    return result;
},error => {
    Promise.reject(error);
});
/*//axios后置拦截器，处理没有登录过的请求
axios.interceptors.response.use(result=>{
    console.log("后置")
    //设置登录的数据
    /!*console.log(result)*!/
    let data = result.data;
    console.log(data)
    //判断message是否为noLogin 和 success是否为false
    if(!data.success && data.message==="noLogin"){
        //清理数据并跳转到登录页
        location.href = "login.html";
    }
    return result;
},error=>{
    console.log("后置错误")
    promise.reject(error);
})*/

//静态资源拦截器
//1.获取到当前页面的地址
let url = location.href;
console.log(url)
if (url.indexOf("login.html") === -1
    && url.indexOf("register.html") === -1
    && url.indexOf("index.html") === -1
    && url.indexOf("callback.html") === -1
    && url.indexOf("binder.html") === -1
){
    //不是登录也不是注册，校验是否有权限
    let loginTmp = localStorage.getItem('logininfo')
    //判断是否登陆过
    if (loginTmp == null){
        //没有登陆过,拦截，跳转到登录界面
        location.href= "login.html";
    }
    //有值，表示登录过，放行
}



/**
 * 解析url获取参数对象
 * @param url
 * @returns {{}}
 */
function parseUrlParams2Obj(url){// http://bugtracker.itsource.cn/callback.html?code=061IduGa1839qC02jlIa1NmHxX1IduGX&state=1
    //获取请求参数
    let paramStr = url.substring(url.indexOf("?")+1);//code=021FdXFa14mYlA016OGa1L3R4X0FdXFO&state=1
    let paramStrs = paramStr.split("&");//[code=021FdXFa14mYlA016OGa1L3R4X0FdXFO,state=1]
    let paramObj = {};
    for(let i=0;i<paramStrs.length;i++){
        let paramName = paramStrs[i].split("=")[0];//code
        let paramValue = paramStrs[i].split("=")[1];//021FdXFa14mYlA016OGa1L3R4X0FdXFO
        paramObj[paramName] = paramValue;// 动态给对象设置属性和值
    }
    return paramObj;
}